home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / Triton / Source / classes / dragitem.c < prev    next >
C/C++ Source or Header  |  1998-05-23  |  3KB  |  103 lines

  1. /*
  2.  *  OpenTriton -- A free release of the triton.library source code
  3.  *  Copyright (C) 1993-1998  Stefan Zeiger
  4.  *
  5.  *  This program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2 of the License, or
  8.  *  (at your option) any later version.
  9.  *
  10.  *  This program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  *  GNU General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with this program; if not, write to the Free Software
  17.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  *
  19.  */
  20.  
  21.  
  22. /****** triton.library/class_DragItem ******
  23. *
  24. *   NAME    
  25. *    class_DragItem -- A draggable item (V6)
  26. *
  27. *   SUPERCLASS
  28. *    class_DisplayObject
  29. *
  30. *   SYNOPSIS
  31. *    TROB_DragItem
  32. *
  33. *   ATTRIBUTES
  34. *    none
  35. *
  36. ******/
  37.  
  38.  
  39. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  40. //////////////////////////////////////////////////////////////////////////////////////// Include our stuff //
  41. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  42.  
  43. #define TR_THIS_IS_TRITON
  44.  
  45. #include <ctype.h>
  46. #include <dos.h>
  47. #include <utility/hooks.h>
  48. #include <clib/alib_protos.h>
  49. #include <libraries/triton.h>
  50. #include <clib/triton_protos.h>
  51. #include "/internal.h"
  52. #include "dragitem.def"
  53.  
  54.  
  55. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  56. ////////////////////////////////////////////////////////////////////////////////////////////// Object data //
  57. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  58.  
  59. #define OBJECT (&(object->DO.O))
  60. #define DISPLAYOBJECT (&(object->DO))
  61. #define DRAGITEM object
  62.  
  63.  
  64. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  65. /////////////////////////////////////////////////////////////////////////////////////////// The dispatcher //
  66. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  67.  
  68. TR_DEFAULTMETHOD(DragItem)
  69. {
  70.   struct TR_Project *project;
  71.   ULONG left, top, width, height;
  72.  
  73.   switch(messageid)
  74.   {
  75.     case TROM_NEW:
  76.       if(!TRDP_DisplayObject_NEW(object,messageid,data,metaclass->trc_SuperClass)) return NULL;
  77.  
  78.       DISPLAYOBJECT->MinHeight=20;
  79.       DISPLAYOBJECT->MinWidth=20;
  80.  
  81.       DISPLAYOBJECT->XResize=TRUE;
  82.       DISPLAYOBJECT->YResize=TRUE;
  83.  
  84.       return (ULONG)object;
  85.  
  86.     case TROM_INSTALL:
  87.       TRDP_DisplayObject_INSTALL(object,messageid,data,metaclass->trc_SuperClass);
  88.  
  89.     case TROM_REFRESH:
  90.       project = OBJECT->Project;
  91.       left    = DISPLAYOBJECT->Left;
  92.       top     = DISPLAYOBJECT->Top;
  93.       width   = DISPLAYOBJECT->Width;
  94.       height  = DISPLAYOBJECT->Height;
  95.  
  96.       TR_DrawBevelBox(project,left,top,width,height,TRBB_BUTTON,FALSE);
  97.       return 1L;
  98.  
  99.     default:
  100.       return TR_SUPERMETHOD;
  101.   }
  102. }
  103.